1 /* 2 * Copyright (C) 2014 Nonki Takkahashi. All rights reserved. 3 * 4 * History: 5 * 0.1 2014-01-10 Created. 6 */ 7 8 /** 9 * @fileOverview Paresr Specification - Expression Parser Spec for Jasmine 10 * @version 0.1 11 * @author Nonki Takahashi 12 */ 13 14 describe("Parser 仕様 0.1", function() { 15 16 it("Expression(\"2-1\").expression() は 1 を返す", function() { 17 var e = new Expression("2-1"); 18 expect(e.expression()).toEqual(1); 19 }); 20 21 it("Expression(\"1.5+2.4\").expression() は 3.9 を返す", function() { 22 var e = new Expression("1.5+2.4"); 23 expect(e.expression()).toEqual(3.9); 24 }); 25 26 it("Expression(\"123*56\").expression() は 6888 を返す", function() { 27 var e = new Expression("123*56"); 28 expect(e.expression()).toEqual(6888); 29 }); 30 31 it("Expression(\"91/2\").expression() は 45.5 を返す", function() { 32 var e = new Expression("91/2"); 33 expect(e.expression()).toEqual(45.5); 34 }); 35 36 it("Expression(\"2.-1\").expression() は 1 を返す", function() { 37 var e = new Expression("2.-1"); 38 expect(e.expression()).toEqual(1); 39 }); 40 41 it("Expression(\"1+1\").expression() は 2 を返す", function() { 42 var e = new Expression("1+1"); 43 expect(e.expression()).toEqual(2); 44 }); 45 46 it("Expression(\"3-1+2\").expression() は 4 を返す", function() { 47 var e = new Expression("3-1+2"); 48 expect(e.expression()).toEqual(4); 49 }); 50 51 it("Expression(\"(3-1+2\").expression() は null を返す", function() { 52 var e = new Expression("(3-1+2"); 53 expect(e.expression()).toEqual(null); 54 }); 55 56 it("Expression(\"3-1+2\").term() は 3 を返す", function() { 57 var e = new Expression("3-1+2"); 58 expect(e.term()).toEqual(3); 59 }); 60 61 it("Expression(\"3*1/2\").term() は 1.5 を返す", function() { 62 var e = new Expression("3*1/2"); 63 expect(e.term()).toEqual(1.5); 64 }); 65 66 it("Expression(\"(3-1+2\").term() は null を返す", function() { 67 var e = new Expression("(3-1+2"); 68 expect(e.term()).toEqual(null); 69 }); 70 71 it("Expression(\"(2-1)*2\").factor() は 1 を返す", function() { 72 var e = new Expression("(2-1)*2"); 73 expect(e.factor()).toEqual(1); 74 }); 75 76 it("Expression(\"(2.-1)*2\").factor() は 1 を返す", function() { 77 var e = new Expression("(2.-1)*2"); 78 expect(e.factor()).toEqual(1); 79 }); 80 81 it("Expression(\"(-2.-1)*2\").factor() は -3 を返す", function() { 82 var e = new Expression("(-2.-1)*2"); 83 expect(e.factor()).toEqual(-3); 84 }); 85 86 it("Expression(\"(-2.-1*2\").factor() は null を返す", function() { 87 var e = new Expression("(-2.-1*2"); 88 expect(e.factor()).toEqual(null); 89 }); 90 91 it("Expression(\"3.5-1+2\").real() は 3.5 を返す", function() { 92 var e = new Expression("3.5-1+2"); 93 expect(e.real()).toEqual(3.5); 94 }); 95 96 it("Expression(\".5-1+2\").real() は .5 を返す", function() { 97 var e = new Expression(".5-1+2"); 98 expect(e.real()).toEqual(.5); 99 }); 100 101 it("Expression(\"-2.-1+2\").real() は -2. を返す", function() { 102 var e = new Expression("-2.-1+2"); 103 expect(e.real()).toEqual(-2.); 104 }); 105 106 it("Expression(\"2.\").real() は 2. を返す", function() { 107 var e = new Expression("2."); 108 expect(e.real()).toEqual(2.); 109 }); 110 111 it("Expression(\"..3-1+2\").real() は null を返す", function() { 112 var e = new Expression("..3-1+2"); 113 expect(e.real()).toEqual(null); 114 }); 115 116 it("Expression(\"1.5+2\").integer() は 1 を返す", function() { 117 var e = new Expression("1.5+2"); 118 expect(e.integer()).toEqual(1); 119 }); 120 121 it("Expression(\".5+2\").integer() は null を返す", function() { 122 var e = new Expression(".5+2"); 123 expect(e.integer()).toEqual(null); 124 }); 125 126 }); 127